草庐IT

Android isScreenOn Nullpointer异常

全部标签

c++ - 通过异常向 "invalid input"发出信号时是否存在事实上的标准异常或最佳实践方式?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestioninvalid_argument是一个logic_error。两者都是referencesites表明行上的东西Thisclass[i.e.logic_error]definesthetypeofobjectsthrownasexceptionstoreporterrorsintheinternallogicaloftheprogram,suchasviolationoflogicalpr

C++11 复制省略号和异常(catch 参数)

在代码审查之后,我们在try/catchblock中遇到了复制elison的问题。阅读此页面后:cppreferenceguide特别是这一段:Whenhandlinganexception,iftheargumentofthecatchclauseisofthesametype(ignoringtop-levelcv-qualification)astheexceptionobjectthrown,thecopyisomittedandthebodyofthecatchclauseaccessestheexceptionobjectdirectly,asifcaughtbyrefer

c++ - C++ 是否有办法忽略函数的异常?

我创建了一个抛出异常的函数,但在某些情况下我希望它简单地忽略这个异常。我的代码是这样写的,但不是很优雅:try{myFunction();}catch(...){}C++有没有另一种写法? 最佳答案 不,没有。在这种情况下,您可以按照标准执行的操作,即重载函数两次,一次使用std::nothrow_t一次没有。用后者包裹第一个std::error_codemy_function(std::nothrow_t)noexcept;voidmy_function();//throws 关于c+

c++ - Poco::Path 使用 const wchar_t* 编译但行为异常

使用Poco::Path我发现了一个非常奇怪的错误。见以下代码:#include#include#includeintmain(){std::wstringa_path=L"c:\\temp";//Poco::Pathfrom_wstring(a_path);//ERROR:failstocompile,expectedPoco::Pathfrom_wchar_t(a_path.c_str());//compiles...unexpectedstd::cout但上面程序的输出是(在Windows中):\而不是预期的:c:\temp查看Poco::Path文档,我看不到构造函数期望std

c++ - 如何修复从 poco 库收到的异常?

当客户端在SenderThread上创建一个即时消息时。它可以来回发送数据。但是当客户端进入挂起模式并从挂起状态返回时。最后创建的线程在恢复。并且没有数据被发送。收到异常详细信息:displayText=Exceptionmessage=name=ExceptionclassName=N4Poco9ExceptionE代码如下:classSenderThread:publicPoco::Runnable{public:MyThread(conststd::string&msg):Msg(msg);{}voidrun(){try{SendData(msg);}catch(Exceptio

c# - 如何处理由 C++ 加载的 C# DLL 中的异常

我有一个用C#创建的DLL,目的是为第三方C#库提供COM接口(interface)。我有一个使用该COM接口(interface)的C++程序,以便它可以与C#库通信。有时,在C#端抛出异常,而我在C++端得到的只是来自COM调用的HRESULT,表示“发生异常”(或类似的东西)。有没有什么方法可以让我获取完整的异常信息,以便我可以将信息性消息打印到我的C++应用程序的日志中?如果没有,我可以在C#端做些什么来拦截所有异常,然后再触发任何将HRESULT返回到C++的机制,以便我可以在C#端记录它们? 最佳答案 有一个托管异常到H

C++: 跨线程异常处理问题与 boost::exception

基本上,我遇到过这样一种情况:一个线程抛出异常,而另一个线程需要处理该异常。我正在尝试使用boost异常来执行此操作,但是异常丢失了它的类型,因此没有被catchblock捕获。基本上,线程B想要做某事,但是由于各种原因,它必须由线程A完成(如果您想知道这些原因,请询问MS为什么direct3d9设备必须由与它相同的线程创建、重置和释放创建窗口)。如果在执行这些操作时发生异常,线程A会捕获它,将其传递回线程B,然后线程B重新抛出它以根据需要进行处理。问题是线程B中抛出的异常似乎与线程A中抛出的异常不同。:(我程序的调试输出和代码如下。First-chanceexceptionat0x7

c++ - Boost.Python 和 Python 异常

如何使boost.python代码python异常感知?例如,inttest_for(){for(;;){}return0;}如果我将它导出到python,则不会中断Ctrl-C。我认为其他异常(exception)这样不行。这是一个玩具示例。我真正的问题是我有一个可能需要数小时才能计算的C函数。我想打断它,例如,如果它需要更多的时间。但我不想杀死python实例,在函数内被调用。提前致谢。 最佳答案 在您的C或C++代码中,为SIGINT安装一个设置全局标志的信号处理程序,并让您的长时间运行的函数定期检查该标志,并在设置标志时尽早

c++ - 替换大量异常使用的最佳方法?

我有一个我不久前制作的旧C++项目。嗯,它是一个CPU模拟器。每当我的代码中发生CPU故障(例如被零除或调试断点中断等)时,它只会执行throw并且在我的主循环中我有这样的事情:try{*(uint32_t*)&op_cache=ReadDword(cCS,eip);(this->*Opcodes[op_cache[0]])();eip=(uint16_t)eip+1;}catch(CpuInt_excperr){err.code&=0x00FF;switch(err.code){case0:case1://.....Int16(err.code);break;default:thro

c++ - 私有(private)继承、友元和异常处理

当A类私有(private)继承自B类时,意味着B是A的私有(private)基类子对象。但对friend来说不是,对friend来说是公共(public)子对象。当有多个catch处理程序时,第一个匹配的处理程序(即,如果异常类型可以隐式转换为处理程序的参数类型)被调用。那么有人会向我解释为什么下面的代码不能像我预期的那样工作吗?此行为是标准有意为之还是MSVC错误?classA{};classB:A//privateinheritance{friendvoidg();};voidf(){Bb;//A*pa=&b;//error,conversionexists,butisinacc